This application claims priority under 35 U.S.C. xc2xa7119 from Japanese Patent Application Serial No. 2000-019379 filed Jan. 27, 2000.
1. Technical Field
The present invention relates in general to data reading and writing by a disk drive apparatus, and more particularly, to a method for improved read/write times for a disk drive apparatus.
2. Description of the Related Art
When a host computer issues a plurality of write requests to a hard disk drive apparatus, it takes a considerable amount of time to execute and complete an actual data write. The hard disk drive apparatus notifies a host computer that it has received a command about a write request and at the same time, retains a write command waiting to be executed.
In the case where there are a plurality of write commands waiting to be executed, commands are sequentially selected according to RPO (Rotational Position Optimization), a technique for estimating seek time when a command is executed. Seek time is defined as the length of time after a seek for a target track on a magnetic disk has begun until it is found. Disk rotation waiting time is defined as the time after the track is reached until access to a target sector is started. The last step of RPO is to select a command with the smallest seek and rotation waiting time and to designate that as the next command to be executed.
The present invention includes a method of writing data that is requested for writing by a host device on a recording medium. The data writing method is characterized by:
a) determining the positional relation of the logical block addresses of a leading write command and the following write command;
b) finding whether the distance between the logical block addresses of the leading write command and the following write command is less than or equal to a predetermined distance in the case where the logical block addresses of the leading write command and the following write command are separate; and
c) writing data corresponding to the leading write command and data corresponding to the following write command sequentially on the recording medium.
This occurs in the case when distance between the logical block address of the leading write command and the logical block address of the following write command is equal to or less than a predetermined distance. In the case where there are a plurality of the leading write commands when the distance is determined to be equal to or less than a predetermined distance, it is desirable that the data corresponding to the following write command with the least distance be written immediately after writing the write data corresponding to the leading write command.
In the data reading method, a host device issues a data read request while a data write request is waiting to be executed. An important step of the data reading method includes determining whether there is any overlap between a logical block addresses of a write and read commands. This is accomplished by comparing the logical block addresses of a write command awaiting execution and the logical block address of the read command that is newly issued. Executing the read command before all the write commands are finished occurs in the case where there is no overlap between the logical block addresses of the write and read commands. The read command can be executed following the execution of a write command. This corresponds to the least distance between the head of the logical block address of the read command and the tail of the logical block address of the write command.
The present invention includes a disk drive apparatus with:
a) a randomly accessible disk-shaped recording medium;
b) a command cache for retaining a write command sent from an external device until the command is executed;
c) a system for determining whether there is any overlap between the logical block addresses of the write command retained in the command cache and the command recently sent from the external device;
d) a system for determining whether the distance between the logical block addresses of the write command retained in the command cache and the newly sent write command is greater than a predetermined distance and has no overlap;
e) a system for instructing that write data corresponding to the two commands be written on the recording medium sequentially, when the distance between the write command retained in the command cache and the newly sent write command is not greater than a predetermined distance;
f) a system for determining whether there exists a read command that overlaps the write command at the logical block addresses.
A write command retained in the command cache can be specified to correspond to the least distance for the newly sent write command in the case where there are a plurality of write commands retained in the command cache where the distance is equal to or less than a predetermined distance. A read command can be performed after executing the overlapping read command from among the write commands retained in the command cache in the case where there exists a read command that overlaps the write command at the logical block addresses. A read command can be executed while the write command waiting to be executed is retained in the command cache in the case where the write command and the read command do not overlap at the logical block addresses.
The present invention also includes a disk drive apparatus controller that controls data writing to a randomly accessible disk-shaped recording medium characterized by:
a) a command cache for retaining a leading write command sent in advance from an external device until the command is executed;
b) a system for determining whether there exists a leading write command where the distance from the following write command newly sent from the external device is less than or equal to a predetermined distance at logical block addresses; and
c) a system for instructing that a following write command be executed ahead of the leading write command in the case where the distance between the logical block addresses is equal to or less than a predetermined distance.
d) a command cache for retaining a plurality of leading write commands sent from an external device until the commands are executed;
e) a system for determining whether there exists a leading write command that overlaps a read command newly sent from the external device; and
f) a system for instructing a read command to be executed ahead of the write command in the case where there exists no leading write command that overlaps the read command at the logical block addresses.